package com.kzx.blog.util;

import java.text.SimpleDateFormat;

/**
 * @author kongz
 * @version 1.0 2021/11/29 11:06
 * @description 时间格式化获取工具类
 */
public class DateUtils {

    // 日期格式
    public static String DAY_FORMAT = "yyyy-MM-dd";

    // 月份格式
    public static String MONTH_FORMAT = "yyyy-MM";

    // 时间格式, 精确到秒
    public static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

    // 时间格式,精确到毫秒
    public static String MILLI_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";

    /**
     * 获取系统当前日期
     */
    public static String getDay() {
        SimpleDateFormat sdf = new SimpleDateFormat(DAY_FORMAT);
        return sdf.format(System.currentTimeMillis());
    }

    /**
     * 获取系统当前时间几天前(后)的日期, 正数代表几天后如 1 代表明天, -1代表昨天
     * @param day 几天前(后)
     */
    public static String getDay(int day) {
        SimpleDateFormat sdf = new SimpleDateFormat(DAY_FORMAT);
        return sdf.format(System.currentTimeMillis() + 1000L * 60 * 60 * 24 * day);
    }

    /**
     * 获取系统当前月份
     */
    public static String getMonth() {
        SimpleDateFormat sdf = new SimpleDateFormat(MONTH_FORMAT);
        return sdf.format(System.currentTimeMillis());
    }

    /**
     * 获取系统当前时间, 精确到秒
     */
    public static String getTime() {
        SimpleDateFormat sdf = new SimpleDateFormat(TIME_FORMAT);
        return sdf.format(System.currentTimeMillis());
    }

    /**
     * 获取系统当前时间, 精确到毫秒
     */
    public static String getMilliTime() {
        SimpleDateFormat sdf = new SimpleDateFormat(MILLI_TIME_FORMAT);
        return sdf.format(System.currentTimeMillis());
    }

}
